/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ivanbiz.service;

import com.ivanbiz.dao.PerusahaanDAO;
import com.ivanbiz.dao.impl.PerusahaanDAOImpl;
import com.ivanbiz.model.Perusahaan;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Sessions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Textbox;

/**
 *
 * @author IW20149X
 */
public class PerusahaanService extends SelectorComposer<Component> {

    @Wire
    Listbox listPerusahaan;
    @Wire
    Textbox nama;
    @Wire
    Textbox alamat;
    @Wire
    Textbox telphone;
    @Wire
    Textbox fax;
    PerusahaanDAO perusahaanDAO;
    Perusahaan perusahaan;

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
        perusahaanDAO = new PerusahaanDAOImpl();
        perusahaan = (Perusahaan) Sessions.getCurrent().getAttribute("perusahaan");
        if (perusahaan == null) {
            nama.setValue("");
            alamat.setValue("");
            telphone.setValue("");
            fax.setValue("");
        } else {
            nama.setValue(perusahaan.getNama());
            alamat.setValue(perusahaan.getAlamat());
            telphone.setValue(perusahaan.getTelephone());
            fax.setValue(perusahaan.getFax());
        }
    }

    @Listen("onClick=#simpan;")
    public void simpan() {
        if (null == perusahaan) {
            perusahaan = new Perusahaan();
        }
        perusahaan.setNama(nama.getValue());
        perusahaan.setAlamat(alamat.getValue());
        perusahaan.setTelephone(telphone.getValue());
        perusahaan.setFax(fax.getValue());
        validate(perusahaan);
    }

    private void validate(Perusahaan perusahaan) {
        if (perusahaan.getNama().trim().isEmpty()) {
            Messagebox.show("Nama tidak boleh kosong");
        } else if (perusahaan.getAlamat().trim().isEmpty()) {
            Messagebox.show("Alamat tidak boleh kosong");
        } else if (perusahaan.getTelephone().trim().isEmpty()) {
            Messagebox.show("Telephone tidak boleh kosong");
        } else if (perusahaan.getFax().trim().isEmpty()) {
            Messagebox.show("Fax tidak boleh kosong");
        } else {
            try {
                perusahaanDAO.saveOrUpdate(perusahaan);
                Messagebox.show("Data sudah disimpan");
            } catch (Exception ex) {
                Logger.getLogger(PerusahaanService.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}
